package icu.qx.wm.mapper;

import java.util.List;

import icu.qx.wm.domain.WmReturnMaterialList;
import icu.qx.wm.vo.MaterialListVo;
import icu.qx.wm.vo.UnitTypeVo;
import org.apache.ibatis.annotations.Param;

/**
 * 生产退料物料清单Mapper接口
 *
 * @author alize
 * &#064;date  2024-07-01
 */
public interface WmReturnMaterialListMapper {
    /**
     * 查询生产退料物料清单
     *
     * @param pmrCode 生产退料物料清单主键
     * @return 生产退料物料清单
     */
    List<WmReturnMaterialList> selectWmReturnMaterialListByPmrCode(String pmrCode);

    // 查询生产退料物料清单数量
    int selectMaterialListTotalByPmrCodes(String[] pmrCode);

    /**
     * 查询生产退料物料清单列表
     *
     * @param wmReturnMaterialList 生产退料物料清单
     * @return 生产退料物料清单集合
     */
    List<WmReturnMaterialList> selectWmReturnMaterialList(WmReturnMaterialList wmReturnMaterialList);

    /**
     * 新增生产退料物料清单
     *
     * @param wmReturnMaterialList 生产退料物料清单
     * @return 结果
     */
    int insertWmReturnMaterialList(WmReturnMaterialList wmReturnMaterialList);

    /**
     * 修改生产退料物料清单
     *
     * @param wmReturnMaterialList 生产退料物料清单
     * @return 结果
     */
    int updateWmReturnMaterialList(WmReturnMaterialList wmReturnMaterialList);

    /**
     * 删除生产退料物料清单
     *
     * @param pmrCode 生产退料物料清单主键
     * @return 结果
     */
    int deleteWmReturnMaterialListByPmrCode(@Param("pmrCode") String pmrCode, @Param("rmlMaterialCode") String rmlMaterialCode);

    /**
     * 批量删除生产退料物料清单
     *
     * @param pmrCodes 需要删除的数据主键集合
     * @return 结果
     */
    int deleteWmReturnMaterialListByPmrCodes(String[] pmrCodes);

    // 查找物料
    List<MaterialListVo> selectMaterialList(MaterialListVo materialListVo);

    // 查找单位
    List<UnitTypeVo> selectUnitList();
}
